import HashMap from '@ohos.util.HashMap'

export class ModelStore {
  private static models = new HashMap<string, any>()

  /**
   * 保存数据
   * @param key
   * @param t
   * @returns
   */
  static put<T>(key: string, t: T): T {
    if (!this.models.get(key)) {
      this.models.set(key, t)
    } else {
      throw new Error(`你已经缓存了一个key为:${key}的model，为避免错误请检查`)
    }
    return t
  }

  /**
   * 获取数据
   * @param key
   * @returns
   */
  static find<T>(key: string): T {
    let model = this.models.get(key)
    if (model) {
      return model as T
    } else {
      throw new Error(`没有找到缓存的model-->key:${key}，请检查是否已经put数据`)
    }
  }

  /**
   * 删除数据
   * @param key
   */
  static remove(key: string) {
    this.models.remove(key)
  }
}